In [1]:
import numpy as np
from matplotlib import pyplot as plt
from __future__ import division
from spacetime.CA_Simulators.CAs import *
from spacetime.Local_Measures.Local_Complexity import *
%matplotlib inline
In [2]:
def wildcard_tiling(x,t):
'''
Returns spacetime field of dimension (x,t) sampled from 0-wildcard tiling language.
'''
field = np.zeros((t,x), dtype=int)
for i in xrange(t):
for j in xrange(x):
if i % 2 == 0 and j % 2 == 0:
field[i,j] = np.random.choice([0,1])
elif i % 2 == 1 and j % 2 == 1:
field[i,j] = np.random.choice([0,1])
return field
In [ ]:
Run machine inference on samples from this tiling
In [8]:
tiling_field = wildcard_tiling(600,600)
In [12]:
tiling_states = epsilon_field(tiling_field)
tiling_states.estimate_states(3,3,1, alpha = 0.05)
tiling_states.filter_data()
In [10]:
print tiling_states.number_of_states()
In [13]:
state_overlay_diagram(tiling_field, tiling_states.get_causal_field(), t_min = 10, t_max = 50, x_max = 40)
In [ ]:
In [6]:
print tiling_states.entropy_rate('forward')
print tiling_states.entropy_rate('right')
print tiling_states.entropy_rate('left')
In [ ]:
rule 18 domain
In [2]:
np.random.seed(0)
domain = ECA(18,domain_18(600))
domain.evolve(600)
In [3]:
np.random.seed(0)
domain_states = epsilon_field(domain.get_spacetime())
domain_states.estimate_states(3,3,1, alpha = 0.05)
domain_states.filter_data()
In [4]:
print domain_states.number_of_states()
In [11]:
state_overlay_diagram(domain.get_spacetime(), domain_states.get_causal_field(), t_min = 10, t_max = 50, x_max = 40)
In [12]:
plcs = domain_states.PLCs()
print plcs.map_to_label('0101100010010100')
In [13]:
print plcs.map_to_shape(22676)
In [15]:
print domain_states.epsilon_map()[22676].index()
In [ ]:
In [10]:
print domain_states.entropy_rate('forward')
print domain_states.entropy_rate('right')
print domain_states.entropy_rate('left')
In [ ]:
In [5]:
print len(domain_states.all_transitions())
In [6]:
print domain_states.nonunifilar_transitions()
In [ ]:
In [6]:
diagram(identity.get_spacetime(),t_max = 50, x_max =50)
In [7]:
states = epsilon_field(identity.get_spacetime())
states.estimate_states(3,3,1)
states.filter_data()
In [8]:
print states.entropy_rate('forward')
print states.entropy_rate('right')
print states.entropy_rate('left')
In [ ]: